
// 两个"相等"数组，必须保证两个两个数组满足以下条件:
// 1、两个数组的长度相等
// 2、两个数组中相应位置的元素全部相等

function equals( a , b ) {
    // 首先需要保障两个参数传入的都是数组
    if( Array.isArray( a ) && Array.isArray( b ) ){
        // 若 第一个参数 a 和 第二个参数 b 指向同一个数组
        if( a === b ){
            return true ;
        } 
        // 若两个数组长度不同
        if( a.length != b.length ){
            return false ;
        }
        // 通过循环寻找两个元素中相应位置是否存在不相等的元素
        for( let i = 0 ; i < a.length ; i++ ){
            if( a[i] !== b[i] ) {
                return false ;
            }
        }
        // 若经过循环查找，未发现任何相应位置不相等元素，则返回 true
        return true;
    }
    // 除了前述各种情况外，其余情况一律返回 false
    return false ;
}

let array1 = [ 10 , 20 , 30 , 40 ];
console.log( array1 === array1 ); // true
console.log( equals( array1 , array1 ) ); // true

let array2 = [ 10 , 20 , 30 , 40 ];
console.log( array1 === array2 ); // false
console.log( equals( array1 , array2 ) ); // true

let array3 = [ 10 , 20 , 30 , 50 ];
let array4 = [ 10 , 20 , 30 , 40 , 50 ];
console.log( equals( array1 , array3 ) ); // false
console.log( equals( array1 , array4 ) ); // false